package com.gin.supermarket_inventory_system.commodity.dto.form;

import com.gin.database.validation.EntityId;
import com.gin.supermarket_inventory_system.commodity.entity.CommodityTypePo;
import com.gin.supermarket_inventory_system.commodity.service.CommodityTypeService;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 添加商品类型
 * @since : 2023/10/9 14:28
 * @author : ginstone
 * @version : v1.0.0
 **/
@Getter
@Setter
@Schema(description = "表单对象:添加商品类型")
public class CommodityTypeAddForm {
    @Schema(description = "名称")
    @NotEmpty
    List<String> name;

    @Schema(description = "父类型ID")
    @EntityId(service = CommodityTypeService.class, nullable = true)
    Long parentId;

    public List<CommodityTypePo> toPoList() {
        return name.stream().map(i -> {
            final CommodityTypePo po = new CommodityTypePo();
            po.setName(i);
            po.setParentId(parentId);
            return po;
        }).toList();
    }
}